LCML/ДанныеAPI-формата

groupbyfield

groupbyfield - Группировка и сортировка данных

Метод

Part: LCML/Данные API-формата

Функция groupbyField группирует данные, представленные в формате models.ResponseData, по указанному полю и значению точки. Также функция выполняет сортировку данных внутри каждой группы по заданному полю и сортировочному значению.

Формат:

groupbyField queryData groupField groupPoint sortField sortPoint desc
  • queryData — входные данные, представленные в формате models.ResponseData.

  • groupField — название поля для группировки.

  • groupPoint — точка данных для определения ключа группировки (например, src, rev или value).

  • sortField — название поля для сортировки.

  • sortPoint — точка данных для сортировки (src, rev или value).

  • desc — булевое значение, указывающее порядок сортировки: true — по убыванию, false — по возрастанию. Результат:

Сгруппированные и отсортированные данные в виде карты ( map[string][]models.Data ), где:

  • Ключ — значение из поля groupField с учетом точки groupPoint.

  • Значение — список объектов models.Data, относящихся к группе. Ошибка (если произошла проблема с обработкой входных данных).

Пример использования:

{{ $groupedObjsMes := groupbyfield $objsMes "sender" "value" "_datecreate" "value" false }}

objfromid

objfromid - Получение объекта из массива объектов по ID

Метод

Part: LCML/Данные API-формата

Формат


objfromid dt id
  • dt — массив объектов типа models.Data, в котором нужно найти объект по ID.
  • id — строка, содержащая идентификатор объекта, который нужно найти. Результат

Возвращает объект, найденный в массиве, если его ID совпадает с переданным. Иначе, возвращается строка “nil”.

Пример использования


sortbyfield

sortbyfield - Сортирует объекты формата models.ResponseData по указанному полю.

Метод

Part: LCML/Данные API-формата

Формат:

sortbyfield data sortField sortPoint desc
  • data — входные данные в формате models.ResponseData, содержащие объекты для сортировки.

  • sortField — название поля для сортировки (например, _datecreate, Title ). Если пусто, используется сортировка по умолчанию.

  • sortPoint — уточняет, по какому атрибуту внутри объекта сортировать (например, value, src, rev ). Если пусто, используется сортировка по умолчанию.

  • desc — логическое значение:

  • true — сортировка по убыванию.

  • false — сортировка по возрастанию.

Результат:

Возвращает отсортированные данные в формате models.ResponseData. В случае ошибки возвращает nil и описание ошибки.

Пример использования:


{{$sortedObjsMes := sortbyfield $objsMes "_datecreate" "value" false}}

sortbyfieldint

sortbyfieldint - Сортирует объекты формата models.ResponseData по указанному полю, при этом если сортировка производится по полям src или value, значения приводятся к типу int.

Метод

Part: LCML/Данные API-формата

Формат:

sortbyfieldint data sortField sortPoint desc
  • data — входные данные в формате models.ResponseData, содержащие объекты для сортировки.

  • sortField — название поля для сортировки (например, Src, Rev ).

  • sortPoint — уточняет, по какому атрибуту внутри объекта сортировать (например, value, src, rev ).

  • desc — логическое значение:

  • true — сортировка по убыванию.

  • false — сортировка по возрастанию.

Результат:

Возвращает отсортированные данные в формате models.ResponseData. В случае ошибки возвращает nil и описание ошибки.

Пример использования:


{{$sortedObjsMes := sortbyfieldint $objsMes "priority" "value" true}}

Исходный объект:


{
"Data": [
{"Title": "Task A", "Attributes": {"priority": {"Value": "5", "Src": ""}}},
{"Title": "Task B", "Attributes": {"priority": {"Value": "3", "Src": ""}}},
{"Title": "Task C", "Attributes": {"priority": {"Value": "4", "Src": ""}}}
]
}

Результат сортировки:


{
"Data": [
{"Title": "Task A", "Attributes": {"priority": {"Value": "5", "Src": ""}}},
{"Title": "Task C", "Attributes": {"priority": {"Value": "4", "Src": ""}}},
{"Title": "Task B", "Attributes": {"priority": {"Value": "3", "Src": ""}}}
]
}

В этой статье: